home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 48
/
Amiga Format CD48 (1999-12-13)(Future Publishing)(GB)(Track 1 of 2)[!][issue 2000-01].iso
/
-serious-
/
misc
/
datelib
/
developer
/
rexx
/
examples
/
datelib-demo.rexx
Wrap
OS/2 REXX Batch file
|
1999-11-01
|
17KB
|
495 lines
/*
**
** Copyright © 1997-1999 Dipl.-Inform. Kai Hofmann. All rights reserved.
**
** $VER: DateLib-Demo.rexx 33.310 (16.06.99)
*/
OPTIONS RESULTS
SIGNAL ON SYNTAX
CALL DATE_INIT
IF RESULT ~= 0 THEN DO
EXIT 10
END
/* EXAMPLE CODE FOR TIME_ FUNCTIONS */
SAY TIME_TIMETOJD(22,48,0)
SAY TIME_TIMEZONEFACTOR(8)
SAY TIME_LMT(3600,8,53)
SAY TIME_TIMETOSEC(22,48,0)
SAY TIME_COMPARE2TIMES(22,48,0,22,49,0)
SAY TIME_VALIDTIME(22,49,0)
SAY TIME_TIMEDIFF(22,49,0,23,0,0)
SAY TIME_TIMETONUM(15,5,0)
/* THE FOLLOWING FUNCTIONS HAVE THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
SAY TIME_JDTOTIME(0.45)
SAY TIME_SECTOTIME(82200)
SAY TIME_DIFFTIME(22,51,0,3600)
SAY TIME_NUMTOTIME(150500)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE hour,min,sec */
SAY TIME_JDTOTIME(0.45,'HOUR MIN SEC')
SAY HOUR || ":" || MIN || ":" || SEC
SAY TIME_SECTOTIME(82200,'HOUR MIN SEC')
SAY HOUR || ":" || MIN || ":" || SEC
SAY TIME_DIFFTIME(22,51,0,3600,'HOUR MIN SEC')
SAY HOUR || ":" || MIN || ":" || SEC
SAY TIME_NUMTOTIME(150600,'HOUR MIN SEC')
SAY HOUR || ":" || MIN || ":" || SEC
/* */
SAY TIME_FORMATTIME("%H:%M:%S",TIME_CHANGEDAY_NORMAL,2,0,19,41,0,+60)
SAY TIME_FORMATTIME("%H:%M:%S",TIME_CHANGEDAY_NORMAL,2,0,19,41,0,+60,'TEXT')
SAY TEXT
/* (Format template)
(Input string)
(ChangeDay)
(ChangeHour)
(DST)
(zonemin)
*/
SAY TIME_PARSETIME("%H:%M:%S","17:06:00",TIME_CHANGEDAY_NORMAL,2,1,120);
/* pos:dst:hour:min:sec:zomemin:pfmt */
SAY TIME_PARSETIME("%H:%M:%S","17:26:00",TIME_CHANGEDAY_NORMAL,2,1,120,'DST HOUR MIN SEC ZONEMIN PFMT');
SAY HOUR || ":" || MIN || ":" || SEC ZONEMIN DST PFMT
SAY "------------------------------------------------------------"
/* EXAMPLE CODE FOR DATE_ FUNCTIONS */
SAY DATE_JULIANLEAPYEAR(1900)
SAY DATE_GREGORIANLEAPYEAR(1900)
SAY DATE_HEISLEAPYEAR(1900)
SAY DATE_JULIANMONTHDAYS(8,1996)
SAY DATE_GREGORIANMONTHDAYS(8,1996)
SAY DATE_HEISMONTHDAYS(8,1996)
SAY DATE_JULIANLASTMONTHDAY(8,1996)
SAY DATE_GREGORIANLASTMONTHDAY(8,1996)
SAY DATE_HEISLASTMONTHDAY(8,1996)
SAY DATE_JULIANYEARDAYS(1996)
SAY DATE_GREGORIANYEARDAYS(1996)
SAY DATE_HEISYEARDAYS(1996)
SAY DATE_COMPARE2DATES(20,8,1996,11,9,1996)
SAY DATE_JULIANDAYDIFF(20,8,1996,11,9,1996)
SAY DATE_GREGORIANDAYDIFF(20,8,1996,11,9,1996)
SAY DATE_HEISDAYDIFF(20,8,1996,11,9,1996)
/* RESULT: 0=dayerr,1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=Friday,
6=Saturday,7=Sunday */
SAY DATE_JULIANWEEKDAY(20,8,1996)
SAY DATE_GREGORIANWEEKDAY(20,8,1996)
SAY DATE_HEISWEEKDAY(20,8,1996)
/* THE LAST PARAMETER IS THE WEEKDAY */
SAY DATE_JULIANDAYSBEFOREWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY)
SAY DATE_GREGORIANDAYSBEFOREWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY)
SAY DATE_HEISDAYSBEFOREWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY)
SAY DATE_JULIANDAYSAFTERWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY)
SAY DATE_GREGORIANDAYSAFTERWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY)
SAY DATE_HEISDAYSAFTERWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY)
SAY DATE_JYEARTOSCALIGER(1996)
SAY DATE_GYEARTOSCALIGER(1996)
SAY DATE_HYEARTOSCALIGER(1996)
SAY DATE_SCALIGERYEARTOJ(6709)
SAY DATE_SCALIGERYEARTOG(6709)
SAY DATE_SCALIGERYEARTOH(6709)
SAY DATE_JSYEARTOJD(6709)
SAY DATE_GSYEARTOJD(6709)
SAY DATE_HSYEARTOJD(6709)
SAY DATE_JDTOMJD(2450084)
SAY DATE_MJDTOJD(50083)
SAY DATE_JULIANTOJD(20,8,1996)
SAY DATE_GREGORIANTOJD(20,8,1996)
SAY DATE_HEISTOJD(20,8,1996)
SAY DATE_GREGORIANMOONAGE(20,8,1996)
SAY DATE_JULIANWEEK(20,8,1996)
SAY DATE_GREGORIANWEEK(20,8,1996)
SAY DATE_HEISWEEK(20,8,1996)
/* FIRST PARAMETER : (DateText)
SECOND PARAMETER: (Language)
THIRD PARAMETER : (WordClass)
*/
SAY DATE_DATETEXT(DATE_DATETEXTS_DAY,DATE_LANGUAGES_LOCALE,DATE_WORDCLASS_SINGULAR)
/*
FOURTH PARAMETER: (MoonPhase)
*/
SAY DATE_GREGORIANMOONPHASE(20,8,1996,DATE_MOONPHASES_NEWMOON)
SAY DATE_VALIDJULIANDATE(20,8,1996)
SAY DATE_VALIDGREGORIANDATE(20,8,1996)
SAY DATE_VALIDHEISDATE(20,8,1996)
SAY DATE_NEXTVALIDJULIANDATE(29,2,1997)
SAY DATE_NEXTVALIDGREGORIANDATE(29,2,1997)
SAY DATE_NEXTVALIDHEISDATE(29,2,1997)
SAY DATE_PREVIOUSVALIDJULIANDATE(29,2,1997)
SAY DATE_PREVIOUSVALIDGREGORIANDATE(29,2,1997)
SAY DATE_PREVIOUSVALIDHEISDATE(29,2,1997)
SAY DATE_NEXTVALIDJULIANDATE(29,2,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_NEXTVALIDGREGORIANDATE(29,2,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_NEXTVALIDHEISDATE(29,2,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_PREVIOUSVALIDJULIANDATE(29,2,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_PREVIOUSVALIDGREGORIANDATE(29,2,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_PREVIOUSVALIDHEISDATE(29,2,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
/*
PARAMETER: (Country)
*/
CALL DATE_SETCOUNTRY(DATE_COUNTRIES_UNKNOWN)
/*
PARAMETER: (Weekday)
*/
CALL DATE_SETFIRSTWEEKDAY(DATE_WEEKDAYS_MONDAY)
/*
FIRST PARAMETER : 2 DIGIT YEAR
SECOND PARAMETER: ACTUAL YEAR
*/
SAY DATE_SUPPLEMENTCENTURY(0,1996)
/* THE FOLLOWING FUNCTIONS HAVE TWO RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
SAY DATE_JULIANEASTER(1996)
SAY DATE_GREGORIANEASTER(1996)
SAY DATE_HEISEASTER(1996)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE day,month */
SAY DATE_JULIANEASTER(1996,'DAY MONTH')
SAY DAY || "." || MONTH || "."
SAY DATE_GREGORIANEASTER(1996,'DAY MONTH')
SAY DAY || "." || MONTH || "."
SAY DATE_HEISEASTER(1996,'DAY MONTH')
SAY DAY || "." || MONTH || "."
/* THE FOLLOWING FUNCTIONS HAVE THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
SAY DATE_JDTOJULIAN(2450084)
SAY DATE_JDTOGREGORIAN(2450084)
SAY DATE_JDTOHEIS(2450084)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE day,month,year */
SAY DATE_JDTOJULIAN(2450084,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_JDTOGREGORIAN(2450084,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_JDTOHEIS(2450084,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
/* THE FOLLOWING FUNCTIONS HAVE THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
/* THE FIRST PARAMETER IS THE WEEKDAY
1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=Friday,6=Saturday,7=Sunday
FOLLOWED BY THE WEEK
*/
SAY DATE_JULIANWWTODM(DATE_WEEKDAYS_SUNDAY,16,1997)
SAY DATE_GREGORIANWWTODM(DATE_WEEKDAYS_SUNDAY,16,1997)
SAY DATE_HEISWWTODM(DATE_WEEKDAYS_SUNDAY,16,1997)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE day,month,year */
SAY DATE_JULIANWWTODM(DATE_WEEKDAYS_SUNDAY,16,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_GREGORIANWWTODM(DATE_WEEKDAYS_SUNDAY,16,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_HEISWWTODM(DATE_WEEKDAYS_SUNDAY,16,1997,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
/* THE FOLLOWING FUNCTIONS HAVE ONE OR TWO RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ONLY THE TEXT STRING */
/* (Weekday)
(Language)
*/
SAY DATE_WEEKDAYTEXT(DATE_WEEKDAYS_MONDAY,DATE_LANGUAGES_LOCALE)
SAY DATE_WEEKDAYSHORTTEXT(DATE_WEEKDAYS_MONDAY,DATE_LANGUAGES_LOCALE)
/* (Month) 1-12
(Language)
*/
SAY DATE_MONTHTEXT(8,DATE_LANGUAGES_LOCALE)
SAY DATE_MONTHSHORTTEXT(8,DATE_LANGUAGES_LOCALE)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE maxlen,text */
/* (Weekday)
(Language)
*/
SAY DATE_WEEKDAYTEXT(DATE_WEEKDAYS_MONDAY,DATE_LANGUAGES_LOCALE,'MAXLEN TEXT')
SAY MAXLEN || ":" || TEXT
SAY DATE_WEEKDAYSHORTTEXT(DATE_WEEKDAYS_MONDAY,DATE_LANGUAGES_LOCALE,'MAXLEN TEXT')
SAY MAXLEN || ":" || TEXT
/* (Month)
(Language)
*/
SAY DATE_MONTHTEXT(8,DATE_LANGUAGES_LOCALE,'MAXLEN TEXT')
SAY MAXLEN || ":" || TEXT
SAY DATE_MONTHSHORTTEXT(8,DATE_LANGUAGES_LOCALE,'MAXLEN TEXT')
SAY MAXLEN || ":" || TEXT
/* (Format template)
(Day)
(Month)
(Year)
(Language) 0=Locale,1=ENGLISH,2=DEUTSCH,3=FRANCAIS,4=ESPANOL,5=PORTUGUES,
6=DANSK,7=ITALIANO,8=NEDERLANDS,9=NORSK,10=SVENSKA,11=POLSKI,
12=SUOMI,13=MAGYAR,14=GREEK,15=ESPERANTO,16=TURKCE,17=LATINA,
18=RUSSIAN, 19=Czech, 20=Catalonian
*/
SAY DATE_FORMATDATE("%Y-%m-%d",10,3,1997,DATE_LANGUAGES_LOCALE)
SAY DATE_FORMATDATE("%Y-%m-%d",10,3,1997,DATE_LANGUAGES_LOCALE,'TEXT')
SAY TEXT
SAY DATE_DATETONUM(28,6,1997)
/* THE FOLLOWING FUNCTIONS HAVE THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
SAY DATE_NUMTODATE(19970628)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE day,month,year */
SAY DATE_NUMTODATE(19970628,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
/* (Format template)
(Input String)
(Language)
(Calendars)
(Actual JD)
*/
SAY DATE_PARSEDATE("%Y-%m-%d","1997-06-28",DATE_LANGUAGES_LOCALE,DATE_CALENDARS_HEIS,2450809)
/* pos:y-m-d:pfmt:plang */
SAY DATE_PARSEDATE("%Y-%m-%d","1997-06-28",DATE_LANGUAGES_LOCALE,DATE_CALENDARS_HEIS,2450809,'DAY MONTH YEAR PFMT PLANG')
SAY DAY || "." || MONTH || "." || YEAR PFMT PLANG
/* THE FOLLOWING FUNCTIONS HAVE THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
SAY DATE_JULIANDIFFDATERANGE(23,1,1998,0,0,1)
SAY DATE_GREGORIANDIFFDATERANGE(23,1,1998,0,0,1)
SAY DATE_HEISDIFFDATERANGE(23,1,1998,0,0,1)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE day,month,year */
SAY DATE_JULIANDIFFDATERANGE(23,1,1998,0,0,1,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_GREGORIANDIFFDATERANGE(23,1,1998,0,0,1,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_HEISDIFFDATERANGE(23,1,1998,0,0,1,'DAY MONTH YEAR')
SAY DAY || "." || MONTH || "." || YEAR
/* THE FOLLOWING FUNCTIONS HAVE THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (IS8601 FORMAT) */
SAY DATE_JULIANRANGEDIFF(1,1,1998,23,1,1998)
SAY DATE_GREGORIANRANGEDIFF(1,1,1998,23,1,1998)
SAY DATE_HEISRANGEDIFF(1,1,1998,23,1,1998)
/* THE SECOND FORM DOES THE SAME THAN THE FIRST ONE BUT YOU ALSO
SPECIFY VARIABLE NAMES FOR THE days,months,years */
SAY DATE_JULIANRANGEDIFF(1,1,1998,23,1,1998,'DAYS MONTHS YEARS')
SAY YEARS || "Y" MONTHS || "M" DAYS || "D"
SAY DATE_GREGORIANRANGEDIFF(1,1,1998,23,1,1998,'DAYS MONTHS YEARS')
SAY YEARS || "Y" MONTHS || "M" DAYS || "D"
SAY DATE_HEISRANGEDIFF(1,1,1998,23,1,1998,'DAYS MONTHS YEARS')
SAY YEARS || "Y" MONTHS || "M" DAYS || "D"
/* New 33.310 functions */
SAY DATE_LEAPYEAR(1900,DATE_CALENDAR_GREGORIAN)
SAY DATE_MONTHDAYS(8,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_LASTMONTHDAY(8,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_YEARDAYS(1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_DAYDIFF(20,8,1996,11,9,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_WEEKDAY(20,8,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_DAYSBEFOREWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY,DATE_CALENDAR_GREGORIAN)
SAY DATE_DAYSAFTERWEEKDAY(20,8,1996,DATE_WEEKDAYS_MONDAY,DATE_CALENDAR_GREGORIAN)
SAY DATE_YEARTOSCALIGER(1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_SCALIGERYEARTOYEAR(6709,DATE_CALENDAR_GREGORIAN)
SAY DATE_SYEARTOJD(6709,DATE_CALENDAR_GREGORIAN)
SAY DATE_DATETOJD(20,8,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_WEEK(20,8,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_VALIDDATE(20,8,1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_NEXTVALIDDATE(29,2,1997,DATE_CALENDAR_GREGORIAN)
SAY DATE_NEXTVALIDDATE(29,2,1997,'DAY MONTH YEAR',DATE_CALENDAR_GREGORIAN)
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_PREVIOUSVALIDDATE(29,2,1997,DATE_CALENDAR_GREGORIAN)
SAY DATE_PREVIOUSVALIDDATE(29,2,1997,'DAY MONTH YEAR',DATE_CALENDAR_GREGORIAN)
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_EASTER(1996,DATE_CALENDAR_GREGORIAN)
SAY DATE_EASTER(1996,'DAY MONTH',DATE_CALENDAR_GREGORIAN)
SAY DAY || "." || MONTH || "."
SAY DATE_JDTODATE(2450084,DATE_CALENDAR_GREGORIAN)
SAY DATE_JDTODATE(2450084,'DAY MONTH YEAR',DATE_CALENDAR_GREGORIAN)
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_WWTODM(DATE_WEEKDAYS_SUNDAY,16,1997,DATE_CALENDAR_GREGORIAN)
SAY DATE_WWTODM(DATE_WEEKDAYS_SUNDAY,16,1997,'DAY MONTH YEAR',DATE_CALENDAR_GREGORIAN)
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_DIFFDATERANGE(23,1,1998,0,0,1,DATE_CALENDAR_GREGORIAN)
SAY DATE_DIFFDATERANGE(23,1,1998,0,0,1,'DAY MONTH YEAR',DATE_CALENDAR_GREGORIAN)
SAY DAY || "." || MONTH || "." || YEAR
SAY DATE_RANGEDIFF(1,1,1998,23,1,1998,DATE_CALENDAR_GREGORIAN)
SAY DATE_RANGEDIFF(1,1,1998,23,1,1998,'DAYS MONTHS YEARS',DATE_CALENDAR_GREGORIAN)
SAY YEARS || "Y" MONTHS || "M" DAYS || "D"
/* EXAMPLE CODE FOR DATETIME_ FUNCTIONS */
/* THE FOLLOWING FUNCTION HAS TWO RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (GMT JD, GMT seconds) */
/* local JD, local seconds, DST, zonemin */
SAY DATETIME_LOCALTOGMT(2450920,62100,1,+60)
SAY DATETIME_LOCALTOGMT(2450920,62100,1,+60,'JD SECS')
SAY JD || ":" || SECS
/* THE FOLLOWING FUNCTION HAS THREE RETURN PARAMETERS! */
/* THE FIRST FORM RETURNS ALL WITHIN A STRING (GMT JD, GMT seconds, DST) */
/* GMT JD, GMT seconds, zonemin, ChangePrevDay, ChangeDay, ChangeNextDay, ChangeHour, DST */
SAY DATETIME_GMTTOLOCAL(2450920,54900,+60,TIME_CHANGEDAY_NORMAL,TIME_CHANGEDAY_NORMAL,TIME_CHANGEDAY_NORMAL,2,1)
SAY DATETIME_GMTTOLOCAL(2450920,54900,+60,TIME_CHANGEDAY_NORMAL,TIME_CHANGEDAY_NORMAL,TIME_CHANGEDAY_NORMAL,2,1,'JD SECS DST')
SAY JD || ":" || SECS || ":" || DST
SYNTAX:
IF (RC ~= "RC") & (RC > 0) THEN DO
SAY "RC:" RC
SAY "Line:" SIGL
IF RC = 15 THEN DO
SAY "Maybe you have installed the light version of the '" || DATE_NAME || "' which does not support ARexx!"
END
END
IF DATE_OPEN = 0 THEN DO
IF ~REMLIB(DATE_NAME) THEN DO
SAY "Can not remove '" || DATE_NAME || "'"
END
END
EXIT 0
DATE_INIT:
DATE_NAME = 'date.library'
DATE_VERSION = 33
DATE_REVISION = 310
DATE_DISPATCHER = -492
ADDRESS COMMAND
'VERSION' DATE_NAME DATE_VERSION DATE_REVISION '>NIL:'
IF RC > 0 THEN DO
SAY "Need '" || DATE_NAME || "'" DATE_VERSION || "." || DATE_REVISION
RETURN(10)
END
IF ~SHOW('LIBRARIES',DATE_NAME) THEN DO
IF ~ADDLIB(DATE_NAME,0,DATE_DISPATCHER,DATE_VERSION) THEN DO
SAY "Can not add '" || DATE_NAME || "'" DATE_VERSION || "." || DATE_REVISION
RETURN(10)
END
DATE_OPEN = 0
END
ELSE DO
DATE_OPEN = 1
END
/* Constant definitions */
TIME_CHANGEDAY_NORMAL = 0
TIME_CHANGEDAY_WINTERTOSUMMER = 1
TIME_CHANGEDAY_SUMMERTOWINTER = 2
DATE_MOONPHASES_NEWMOON = 0
DATE_MOONPHASES_FIRSTQUARTER = 1
DATE_MOONPHASES_FULLMOON = 2
DATE_MOONPHASES_LASTQUARTER = 3
DATE_WEEKDAYS_DAYERR = 0
DATE_WEEKDAYS_MONDAY = 1
DATE_WEEKDAYS_TUESDAY = 2
DATE_WEEKDAYS_WEDNESDAY = 3
DATE_WEEKDAYS_THURSDAY = 4
DATE_WEEKDAYS_FRIDAY = 5
DATE_WEEKDAYS_SATURDAY = 6
DATE_WEEKDAYS_SUNDAY = 7
DATE_DATETEXTS_DAY = 0
DATE_DATETEXTS_MONTH = 1
DATE_DATETEXTS_YEAR = 2
DATE_DATETEXTS_WEEK = 3
DATE_DATETEXTS_WEEKDAY = 4
DATE_DATETEXTS_HOUR = 5
DATE_DATETEXTS_MINUTE = 6
DATE_DATETEXTS_SECOND = 7
DATE_DATETEXTS_YESTERDAY = 8
DATE_DATETEXTS_TODAY = 9
DATE_DATETEXTS_TOMORROW = 10
DATE_WORDCLASS_SINGULAR = 0
DATE_WORDCLASS_PLURAL = 1
DATE_WORDCLASS_PERIODICAL = 2
DATE_LANGUAGES_LOCALE = 0
DATE_LANGUAGES_ENGLISH = 1
DATE_LANGUAGES_GERMAN = 2
DATE_LANGUAGES_FRENCH = 3
DATE_LANGUAGES_SPANISH = 4
DATE_LANGUAGES_PORTUGUESE = 5
DATE_LANGUAGES_DANISH = 6
DATE_LANGUAGES_ITALIAN = 7
DATE_LANGUAGES_DUTCH = 8
DATE_LANGUAGES_NORWEGIAN = 9
DATE_LANGUAGES_SWEDISH = 10
DATE_LANGUAGES_POLISH = 11
DATE_LANGUAGES_FINNISH = 12
DATE_LANGUAGES_HUNGARIAN = 13
DATE_LANGUAGES_GREEK = 14
DATE_LANGUAGES_ESPERANTO = 15
DATE_LANGUAGES_TURKISH = 16
DATE_LANGUAGES_LATIN = 17
DATE_LANGUAGES_RUSSIAN = 18
DATE_LANGUAGES_CZECH = 19
DATE_LANGUAGES_CATALONIAN = 20
DATE_LANGUAGES_SERBIAN = 21
DATE_LANGUAGES_LASTLANGUAGE = 22
DATE_COUNTRIES_UNKNOWN = 0
DATE_COUNTRIES_ITALIA = 1
DATE_COUNTRIES_DEUTSCHLAND = 2
DATE_COUNTRIES_SCHWEIZ = 3
DATE_COUNTRIES_DANMARK = 4
DATE_COUNTRIES_NEDERLAND = 5
DATE_COUNTRIES_GREATBRITAIN = 6
DATE_COUNTRIES_USA = 7
DATE_COUNTRIES_SWEDEN = 8
DATE_CALENDARS_JULIAN = 0
DATE_CALENDARS_GREGORIAN = 1
DATE_CALENDARS_HEIS = 2
RETURN(0)